/*
*Copyright 2021-2023 NERCIS
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/

package cn.ac.nercis.pes.model.dto.evaluation.onsite;

import cn.ac.nercis.pes.common.constant.evaluation.EvaluationConclusion;
import cn.ac.nercis.pes.common.constant.evaluation.EvaluationResult;
import cn.ac.nercis.pes.common.constant.project.RefTargetType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 资产对象测评记录信息
 * @author zpy
 * @version 1.0.0
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EvaluationRecordDTO {
    /**
     * 测评记录ID
     */
    private String id;
    /**
     * 系统ID
     */
    private String systemId;
    /**
     * 系统资产ID
     */
    private String assetId;
    /**
     * 层面指标ID
     */
    private String layerTargetId;
    /**
     * 单元指标ID
     */
    private String unitTargetId;
    /**
     * 资产对象关联指标测试方式ID
     */
    private String assetEvaMethodId;
    /**
     * 单元指标是否适用
     */
    private Boolean isApply;
    /**
     * 测评指标描述
     */
    private String targetDesc;
    /**
     * 测评方式
     */
    private String method;
    /**
     * 测评说明
     */
    private String desc;
    /**
     * 测评结论
     */
    @Builder.Default
    private EvaluationConclusion conclusion = EvaluationConclusion.DEFAULT;
    /**
     * 对象得分
     */
    private Double score;
    /**
     * 指标引用类型
     */
    private RefTargetType refType;
    /**
     * 密码使用安全（D）判定结果
     */
    @Builder.Default
    private EvaluationResult dResult = EvaluationResult.DEFAULT;
    /**
     * 密码算法/技术合规性（A）判定结果
     */
    @Builder.Default
    private EvaluationResult aResult = EvaluationResult.DEFAULT;
    /**
     * 密钥管理安全（K）判定结果
     */
    @Builder.Default
    private EvaluationResult kResult = EvaluationResult.DEFAULT;

    /**
     * 密码使用安全（D）内容描述
     */
    private String dContent;
    /**
     * 密码算法/技术合规性（A）内容描述
     */
    private String aContent;
    /**
     * 密钥管理安全（K）内容描述
     */
    private String kContent;
    /**
     * 管理指标/不适用指标记录描述
     */
    private String content;

    /**
     * 密码使用安全（D）附件图片文件列表
     */
    private String dFiles;
    /**
     * 密码算法/技术合规性（A）附件图片文件列表
     */
    private String aFiles;
    /**
     * 密钥管理安全（K）附件图片文件列表
     */
    private String kFiles;
    /**
     * 管理类型指标附件图片文件列表
     */
    private String manageFiles;
}